https://tiktok.com/@Kanalname/video/43664534324252233
https://toktok.com/@Kanalname/photo/436632342453252233
Im Rahmen unseres Projektes wurde eine umfassende Erhebung von nutzergenerierten Daten aus der Plattform TikTok durchgeführt. Diese Daten werden nun einer systematischen Aufbereitung und Filterung unterzogen, um sie für die anschließende Weiterverarbeitung vorzubereiten.
Ein wesentlicher Bestandteil dieses Prozesses ist die Identifikation deutscher Inhalte, welche durch speziell entwickelte Erkennungsverfahren erfolgt. Zudem findet eine manuelle Selektion statt, bei welcher durch den Einsatz einer Blacklist unerwünschte Kanäle ausgeschlossen werden.
Alle Feststellungen sind akribisch zu dokumentiet worden. Die sqlite3 Datenbank wird zur weiteren Verarbeitung in ein Dataframe überführt.
# Datenbankinhalt in einen Pandas-DataFrame laden
import pandas as pd
import sqlite3
def db_to_dataframe(db_name="tiktok_media_metadata.db"):
conn = sqlite3.connect(db_name)
query = "SELECT * FROM media_metadata"
try:
df = pd.read_sql_query(query, conn)
return df
except sqlite3.Error as e:
print(f"Fehler: {e}")
return None
finally:
conn.close()
df = db_to_dataframe()
df
| id | url | title | description | duration | view_count | like_count | repost_count | comment_count | uploader | uploader_id | channel | channel_id | channel_url | track | album | artists | timestamp | extractor | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 7453041971486133536 | https://www.tiktok.com/@gereonbollmann/video/7... | Zur Lösung der angespannten Situation auf unse... | Zur Lösung der angespannten Situation auf unse... | 173.0 | 915 | 113 | 1 | 8 | gereonbollmann | 7240807959155098651 | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1735296567 | None |
| 1 | 7446314527685201185 | https://www.tiktok.com/@gereonbollmann/video/7... | Eine #Petition hat den Deutschen Bundestag err... | Eine #Petition hat den Deutschen Bundestag err... | 154.0 | 914 | 104 | 0 | 5 | gereonbollmann | 7240807959155098651 | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1733730236 | None |
| 2 | 7430740655854390560 | https://www.tiktok.com/@gereonbollmann/video/7... | Warum nur die Politik der AfD für Sicherheit i... | Warum nur die Politik der AfD für Sicherheit i... | 56.0 | 893 | 103 | 1 | 8 | gereonbollmann | 7240807959155098651 | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1730104143 | None |
| 3 | 7429638543347076385 | https://www.tiktok.com/@gereonbollmann/video/7... | Wir brauchen Erleichterungen für beruflich sel... | Wir brauchen Erleichterungen für beruflich sel... | 232.0 | 373 | 44 | 5 | 6 | gereonbollmann | 7240807959155098651 | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1729847537 | None |
| 4 | 7424819005254405408 | https://www.tiktok.com/@gereonbollmann/video/7... | Als Mitglied des Familienausschusses und Vorsi... | Als Mitglied des Familienausschusses und Vorsi... | 228.0 | 1361 | 146 | 1 | 7 | gereonbollmann | 7240807959155098651 | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1728725401 | None |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 48359 | 7466173303334407456 | https://www.tiktok.com/@basierter_patriot/vide... | #krahtok #fyp | #krahtok #fyp | 18.0 | 404 | 70 | 13 | 6 | basierter_patriot | 7411146541022856224 | basedpatriot | MS4wLjABAAAAJ3lbnZ-z9ZAQfyVd_W_Ro_m5zKx6vbnxhu... | https://www.tiktok.com/@MS4wLjABAAAAJ3lbnZ-z9Z... | Originalton - basedpatriot | None | basedpatriot | 1738353945 | None |
| 48360 | 7466100283848838422 | https://www.tiktok.com/@schroedibardowick/vide... | 71.0 | 1913 | 654 | 71 | 99 | schroedibardowick | 7084851667984466950 | Schrödi | MS4wLjABAAAAfKDrr3d_jsNET3OrFccKEEiorW0j27HQWg... | https://www.tiktok.com/@MS4wLjABAAAAfKDrr3d_js... | Originalton | None | Schrödi | 1738336941 | None | ||
| 48361 | 7466160094992977174 | https://www.tiktok.com/@andreazuercherafd/vide... | Bitte melden, vielen Dank! | Bitte melden, vielen Dank! | 9.0 | 477 | 42 | 0 | 5 | andreazuercherafd | 6666441368116723717 | Andrea Zürcher AfD 💙 | MS4wLjABAAAAx18EgWma5KUkjy1jcbEPOBjVFEUNkUj967... | https://www.tiktok.com/@MS4wLjABAAAAx18EgWma5K... | оригінальний звук | None | Music Lover | 1738350864 | None |
| 48362 | 7466106747002817814 | https://www.tiktok.com/@newsaktuelldeutsch/vid... | Wieso lässt man die Landwirte so im Stich ? 😱 ... | Wieso lässt man die Landwirte so im Stich ? 😱 ... | 65.0 | 492 | 35 | 1 | 3 | newsaktuelldeutsch | 7282686927147566112 | NewsAktuellDE | MS4wLjABAAAAIg0BMBORycA9RNCPJv5ridGV889J1ghb7Q... | https://www.tiktok.com/@MS4wLjABAAAAIg0BMBORyc... | Originalton | None | NewsAktuellDE | 1738338444 | None |
| 48363 | 7466118903568125206 | https://www.tiktok.com/@afdclips4/video/746611... | Ein harter Schlag der uns trifft... wir geben ... | Ein harter Schlag der uns trifft... wir geben ... | 103.0 | 4082 | 268 | 8 | 44 | afdclips4 | 7460842099052119063 | AFDclips | MS4wLjABAAAAwu4Xfs_Q6vqo6Od0Aj6kAHdJafAeRxaWXq... | https://www.tiktok.com/@MS4wLjABAAAAwu4Xfs_Q6v... | Originalton | None | AFDclips | 1738341275 | None |
48364 rows × 19 columns
Die Erkennung deutscher Sprachinhalte erfolgt durch das erstmalige Bereinigen der zu prüfenden Texte von vorhandenen Hashtags. Es werden anhand von Wahrscheinlichkeiten das Vorhandensein der deutschen Sprache innerhalb gegebener Inhalte bestätigen oder ablehnen. Basierend auf den Ergebnissen wird der Datenbestand in besonders gekennzeichnete Textdateien geteilt, die dann zur weiteren Bearbeitung an die entsprechenden Stellen zugewiesen werden können.
import pandas as pd
from langdetect import detect_langs
import logging
from logging.handlers import RotatingFileHandler
# Loggings mit RotatingFileHandler (max. 10 MB)
logger = logging.getLogger("GermanDetection")
logger.setLevel(logging.DEBUG)
handler = RotatingFileHandler("process.log", maxBytes=10*1024*1024, backupCount=1)
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
def is_german(text):
try:
# Entferne Hashtags, bevor die Sprache erkannt wird
text_without_hashtags = ' '.join(word for word in text.split() if not word.startswith('#'))
# Falls kein anderer Text nach dem Entfernen von Hashtags übrig bleibt
if not text_without_hashtags.strip():
return False
# Erkennung der Sprache und Überprüfung der Wahrscheinlichkeit
detected_languages = detect_langs(text_without_hashtags)
for lang in detected_languages:
if lang.lang == 'de' and lang.prob > 0.7:
return True
return False
except Exception as e:
logger.warning(f"Fehler beim Erkennen der Sprache: {e}")
return False
logger.info("Starte Spracherkennung für DataFrame")
# Anwenden der Sprachprüfung auf Titel und Beschreibungen
df['german_title'] = df['title'].apply(is_german)
df['german_description'] = df['description'].apply(lambda x: is_german(x) if isinstance(x, str) else False)
logger.info("Spracherkennung abgeschlossen, gruppiere nach Uploader")
# Gruppierung nach Uploader und Aggregation der deutschen Inhalte
grouped = df.groupby('uploader').agg(
total_entries=('title', 'count'),
german_title_sum=('german_title', 'sum'),
german_desc_sum=('german_description', 'sum')
)
grouped['german_average'] = (grouped['german_title_sum'] + grouped['german_desc_sum']) / (2 * grouped['total_entries'])
# Auswahl der Uploader die den deutschen Schwellenwert erfüllen
eligible_uploaders = grouped[grouped['german_average'] > 0.5].index.tolist()
logger.info(f"Anzahl der gefilterten Uploader: {len(eligible_uploaders)}")
# Ermittlung der Uploader die den Schwellenwert nicht erfüllen
all_uploaders = grouped.index.tolist()
non_eligible_uploaders = list(set(all_uploaders) - set(eligible_uploaders))
logger.info(f"Anzahl der nicht gefilterten Uploader: {len(non_eligible_uploaders)}")
# Filterung des ursprünglichen DataFrames nach den berechtigten Uploadern
result_df = df[df['uploader'].isin(eligible_uploaders)].copy()
logger.info(f"Ergebnis-DataFrame enthält {len(result_df)} Einträge")
# Ausgabe des gefilterten DataFrames in Jupyter Notebook
result_df
# Erstellen einer positives.txt mit detaillierten Informationen der gefilterten Einträge
with open("positives.txt", "w", encoding="utf-8") as f:
for idx, row in result_df.iterrows():
f.write(f"Uploader: {row['uploader']}\n")
f.write(f"Title: {row['title']}\n")
f.write(f"Description: {row.get('description', '')}\n")
f.write("-" * 40 + "\n")
logger.info("positives.txt wurde erstellt.")
# Erstellen einer negatives.txt mit den unique Uploadern, die nicht die Kriterien erfüllen
with open("negatives.txt", "w", encoding="utf-8") as f:
for uploader in non_eligible_uploaders:
f.write(f"{uploader}\n")
logger.info("negatives.txt wurde erstellt.")
result_df
| id | url | title | description | duration | view_count | like_count | repost_count | comment_count | uploader | ... | channel | channel_id | channel_url | track | album | artists | timestamp | extractor | german_title | german_description | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 7453041971486133536 | https://www.tiktok.com/@gereonbollmann/video/7... | Zur Lösung der angespannten Situation auf unse... | Zur Lösung der angespannten Situation auf unse... | 173.0 | 912 | 113 | 1 | 8 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1735296567 | None | True | True |
| 1 | 7446314527685201185 | https://www.tiktok.com/@gereonbollmann/video/7... | Eine #Petition hat den Deutschen Bundestag err... | Eine #Petition hat den Deutschen Bundestag err... | 154.0 | 912 | 104 | 0 | 5 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1733730236 | None | True | True |
| 2 | 7430740655854390560 | https://www.tiktok.com/@gereonbollmann/video/7... | Warum nur die Politik der AfD für Sicherheit i... | Warum nur die Politik der AfD für Sicherheit i... | 56.0 | 891 | 103 | 1 | 8 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1730104143 | None | True | True |
| 3 | 7429638543347076385 | https://www.tiktok.com/@gereonbollmann/video/7... | Wir brauchen Erleichterungen für beruflich sel... | Wir brauchen Erleichterungen für beruflich sel... | 232.0 | 371 | 44 | 5 | 6 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1729847537 | None | True | True |
| 4 | 7424819005254405408 | https://www.tiktok.com/@gereonbollmann/video/7... | Als Mitglied des Familienausschusses und Vorsi... | Als Mitglied des Familienausschusses und Vorsi... | 228.0 | 1360 | 146 | 1 | 7 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1728725401 | None | True | True |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 47703 | 7464547210571713815 | https://www.tiktok.com/@afdclips4/video/746454... | was hält ihr davon? #afd #deutschland #germany... | was hält ihr davon? #afd #deutschland #germany... | 49.0 | 873 | 189 | 1 | 14 | afdclips4 | ... | AFDclips | MS4wLjABAAAAwu4Xfs_Q6vqo6Od0Aj6kAHdJafAeRxaWXq... | https://www.tiktok.com/@MS4wLjABAAAAwu4Xfs_Q6v... | Originalton | None | AFDclips | 1737975339 | None | True | True |
| 47704 | 7464502773598539030 | https://www.tiktok.com/@afdclips4/video/746450... | Was haltet ihr davon? #afd #deutschland #germa... | Was haltet ihr davon? #afd #deutschland #germa... | 41.0 | 796 | 100 | 2 | 12 | afdclips4 | ... | AFDclips | MS4wLjABAAAAwu4Xfs_Q6vqo6Od0Aj6kAHdJafAeRxaWXq... | https://www.tiktok.com/@MS4wLjABAAAAwu4Xfs_Q6v... | Very Sad | Very Sad | Enchan | 1737965003 | None | True | True |
| 47707 | 7464918951403785494 | https://www.tiktok.com/@carolin_bachmann_mdb/v... | Heute früh nich Termin in Wahlkreis, Plakate a... | Heute früh nich Termin in Wahlkreis, Plakate a... | 60.0 | 450 | 82 | 0 | 13 | carolin_bachmann_mdb | ... | carolinbachmannmdb | MS4wLjABAAAAkFIhz-gwfBz-PvcyDf6xSziSIwYcvsxGFE... | https://www.tiktok.com/@MS4wLjABAAAAkFIhz-gwfB... | Heimat | Alles brennt | Johannes Oerding | 1738061893 | None | True | True |
| 47708 | 7464857918484106518 | https://www.tiktok.com/@carolin_bachmann_mdb/v... | Wie kann man so ein Plakat zerstören?!?! Es is... | Wie kann man so ein Plakat zerstören?!?! Es is... | 9.0 | 2470 | 81 | 1 | 38 | carolin_bachmann_mdb | ... | carolinbachmannmdb | MS4wLjABAAAAkFIhz-gwfBz-PvcyDf6xSziSIwYcvsxGFE... | https://www.tiktok.com/@MS4wLjABAAAAkFIhz-gwfB... | The Olsen Gang (Theme) | Olsenbanden ENG | Bent Fabricius-Bjerre | 1738047689 | None | True | True |
| 47709 | 7464586894207094038 | https://www.tiktok.com/@christinabaumafd/video... | 8.0 | 33 | 4 | 0 | 0 | christinabaumafd | ... | ChristinaBaumAfD | MS4wLjABAAAA5idJQbBKax9jis75GXN2tLRsh6Wxq-UKth... | https://www.tiktok.com/@MS4wLjABAAAA5idJQbBKax... | Sound of flying airplane (airliner) 2 | None | song sound sun | 1737984578 | None | False | False |
19534 rows × 21 columns
Gemäß der geltenden Dienstvorschrift ist eine umfassende Überprüfung der Tiktok-Kanäle vorzunehmen, wobei die bestehende Blacklist mit erhöhter Sorgfalt anzuwenden ist.
import pandas as pd
# Blacklist einlesen
with open('blacklist.txt', 'r') as file:
blacklist = [line.strip() for line in file if line.strip()]
# Filterung des DataFrames: Behalte nur die Einträge, deren Uploader NICHT in der Blacklist ist
filtered_result_df = result_df[~result_df['uploader'].isin(blacklist)]
# Anzeigen des gefilterten DataFrames
filtered_result_df
| id | url | title | description | duration | view_count | like_count | repost_count | comment_count | uploader | ... | channel | channel_id | channel_url | track | album | artists | timestamp | extractor | german_title | german_description | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 7453041971486133536 | https://www.tiktok.com/@gereonbollmann/video/7... | Zur Lösung der angespannten Situation auf unse... | Zur Lösung der angespannten Situation auf unse... | 173.0 | 914 | 113 | 1 | 8 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1735296567 | None | True | True |
| 1 | 7446314527685201185 | https://www.tiktok.com/@gereonbollmann/video/7... | Eine #Petition hat den Deutschen Bundestag err... | Eine #Petition hat den Deutschen Bundestag err... | 154.0 | 914 | 104 | 0 | 5 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1733730236 | None | True | True |
| 2 | 7430740655854390560 | https://www.tiktok.com/@gereonbollmann/video/7... | Warum nur die Politik der AfD für Sicherheit i... | Warum nur die Politik der AfD für Sicherheit i... | 56.0 | 893 | 103 | 1 | 8 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1730104143 | None | True | True |
| 3 | 7429638543347076385 | https://www.tiktok.com/@gereonbollmann/video/7... | Wir brauchen Erleichterungen für beruflich sel... | Wir brauchen Erleichterungen für beruflich sel... | 232.0 | 373 | 44 | 5 | 6 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1729847537 | None | True | True |
| 4 | 7424819005254405408 | https://www.tiktok.com/@gereonbollmann/video/7... | Als Mitglied des Familienausschusses und Vorsi... | Als Mitglied des Familienausschusses und Vorsi... | 228.0 | 1361 | 146 | 1 | 7 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1728725401 | None | True | True |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 48231 | 7465977151477550358 | https://www.tiktok.com/@kleinwaechterafd/video... | Wir sind für Euch unterwegs. Gute zwei Wochen ... | Wir sind für Euch unterwegs. Gute zwei Wochen ... | 180.0 | 696 | 44 | 0 | 3 | kleinwaechterafd | ... | Norbert Kleinwächter AfD | MS4wLjABAAAAP45JMeABuFlUQhnUoqxdpNTBsbIW_UJ3QF... | https://www.tiktok.com/@MS4wLjABAAAAP45JMeABuF... | Time (Instrumental) | Time (Instrumental) | Andy Ms | 1738308278 | None | True | True |
| 48232 | 7465952306236771606 | https://www.tiktok.com/@afd2025de/video/746595... | CDU und AfD auf neue Zusammenarbeit? #afd #ali... | CDU und AfD auf neue Zusammenarbeit? #afd #ali... | 93.0 | 3246 | 367 | 8 | 38 | afd2025de | ... | AFD | MS4wLjABAAAAuSKVEGbjhJzoIJSGeBwzy1Cb2QVSpW3GfF... | https://www.tiktok.com/@MS4wLjABAAAAuSKVEGbjhJ... | Inspirational | Inspirational | neozilla | 1738302500 | None | True | True |
| 48239 | 7465993450983394582 | https://www.tiktok.com/@dr._christoph_berndt/v... | Nicht nur unsere Umfragewerte steigen permanen... | Nicht nur unsere Umfragewerte steigen permanen... | 20.0 | 196 | 24 | 1 | 2 | dr._christoph_berndt | ... | Dr. Christoph Berndt | MS4wLjABAAAAejQH_TrcohtuVcDoYnAEHPGjQLtpAsQMXG... | https://www.tiktok.com/@MS4wLjABAAAAejQH_Trcoh... | Ready | Release Troubles | Official Sound Studio | 1738312074 | None | True | True |
| 48241 | 7465971200376769814 | https://www.tiktok.com/@nikolaushgw/video/7465... | #Migrationswende Nikolaus Kramer rechnet mit d... | #Migrationswende Nikolaus Kramer rechnet mit d... | 42.0 | 749 | 98 | 1 | 9 | nikolaushgw | ... | Nikolaus | MS4wLjABAAAA5wqh1FiOYjITWsvYo7v5vEkPFrvuukJHKj... | https://www.tiktok.com/@MS4wLjABAAAA5wqh1FiOYj... | Originalton | None | Nikolaus | 1738306892 | None | True | True |
| 48246 | 7465980226007239958 | https://www.tiktok.com/@afdclips4/video/746598... | Plötzlich wollen es doch alle... #afd #alicewe... | Plötzlich wollen es doch alle... #afd #alicewe... | 71.0 | 3012 | 182 | 6 | 17 | afdclips4 | ... | AFDclips | MS4wLjABAAAAwu4Xfs_Q6vqo6Od0Aj6kAHdJafAeRxaWXq... | https://www.tiktok.com/@MS4wLjABAAAAwu4Xfs_Q6v... | Epic News | Epic News | DM Production | 1738308993 | None | True | True |
17223 rows × 21 columns
df = filtered_result_df
Den gefilterten DataFrame in einer neuen SQLite-Datenbank mit der gleichen Tabellenstruktur abspeichern.
import sqlite3
# Funktion zum Speichern des DataFrames in eine neue SQLite-Datenbank
def save_filtered_df_to_new_db(df, new_db_name="filtered_tiktok_media_metadata.db"):
# Verbindung zur neuen Datenbank herstellen (erstellt sie, falls nicht vorhanden)
conn = sqlite3.connect(new_db_name)
# Sicherstellen, dass der DataFrame die Spalten in der gleichen Reihenfolge wie die Originaldatenbank hat
try:
# Die Tabelle in der neuen Datenbank erstellen und Daten einfügen
df.to_sql('media_metadata', conn, if_exists='replace', index=False)
print(f"Gefilterter DataFrame wurde erfolgreich in {new_db_name} gespeichert.")
except sqlite3.Error as e:
print(f"Fehler beim Speichern des DataFrames: {e}")
finally:
conn.close()
# Aufruf der Funktion, um den result_df zu speichern
save_filtered_df_to_new_db(df)
Gefilterter DataFrame wurde erfolgreich in filtered_tiktok_media_metadata.db gespeichert.
# Datenbankinhalt in einen Pandas-DataFrame laden
import pandas as pd
import sqlite3
def db_to_dataframe(db_name="filtered_tiktok_media_metadata.db"):
conn = sqlite3.connect(db_name)
query = "SELECT * FROM media_metadata"
try:
df = pd.read_sql_query(query, conn)
return df
except sqlite3.Error as e:
print(f"Fehler: {e}")
return None
finally:
conn.close()
df = db_to_dataframe()
df
| id | url | title | description | duration | view_count | like_count | repost_count | comment_count | uploader | ... | channel | channel_id | channel_url | track | album | artists | timestamp | extractor | german_title | german_description | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 7453041971486133536 | https://www.tiktok.com/@gereonbollmann/video/7... | Zur Lösung der angespannten Situation auf unse... | Zur Lösung der angespannten Situation auf unse... | 173.0 | 912 | 113 | 1 | 8 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1735296567 | None | 1 | 1 |
| 1 | 7446314527685201185 | https://www.tiktok.com/@gereonbollmann/video/7... | Eine #Petition hat den Deutschen Bundestag err... | Eine #Petition hat den Deutschen Bundestag err... | 154.0 | 912 | 104 | 0 | 5 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1733730236 | None | 1 | 1 |
| 2 | 7430740655854390560 | https://www.tiktok.com/@gereonbollmann/video/7... | Warum nur die Politik der AfD für Sicherheit i... | Warum nur die Politik der AfD für Sicherheit i... | 56.0 | 891 | 103 | 1 | 8 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1730104143 | None | 1 | 1 |
| 3 | 7429638543347076385 | https://www.tiktok.com/@gereonbollmann/video/7... | Wir brauchen Erleichterungen für beruflich sel... | Wir brauchen Erleichterungen für beruflich sel... | 232.0 | 371 | 44 | 5 | 6 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1729847537 | None | 1 | 1 |
| 4 | 7424819005254405408 | https://www.tiktok.com/@gereonbollmann/video/7... | Als Mitglied des Familienausschusses und Vorsi... | Als Mitglied des Familienausschusses und Vorsi... | 228.0 | 1360 | 146 | 1 | 7 | gereonbollmann | ... | GereonBollmann | MS4wLjABAAAAgUzNvITVXyWp84duXpnanJMJwt36SS82jZ... | https://www.tiktok.com/@MS4wLjABAAAAgUzNvITVXy... | Originalton - GereonBollmann | None | GereonBollmann | 1728725401 | None | 1 | 1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 16997 | 7464547210571713815 | https://www.tiktok.com/@afdclips4/video/746454... | was hält ihr davon? #afd #deutschland #germany... | was hält ihr davon? #afd #deutschland #germany... | 49.0 | 873 | 189 | 1 | 14 | afdclips4 | ... | AFDclips | MS4wLjABAAAAwu4Xfs_Q6vqo6Od0Aj6kAHdJafAeRxaWXq... | https://www.tiktok.com/@MS4wLjABAAAAwu4Xfs_Q6v... | Originalton | None | AFDclips | 1737975339 | None | 1 | 1 |
| 16998 | 7464502773598539030 | https://www.tiktok.com/@afdclips4/video/746450... | Was haltet ihr davon? #afd #deutschland #germa... | Was haltet ihr davon? #afd #deutschland #germa... | 41.0 | 796 | 100 | 2 | 12 | afdclips4 | ... | AFDclips | MS4wLjABAAAAwu4Xfs_Q6vqo6Od0Aj6kAHdJafAeRxaWXq... | https://www.tiktok.com/@MS4wLjABAAAAwu4Xfs_Q6v... | Very Sad | Very Sad | Enchan | 1737965003 | None | 1 | 1 |
| 16999 | 7464918951403785494 | https://www.tiktok.com/@carolin_bachmann_mdb/v... | Heute früh nich Termin in Wahlkreis, Plakate a... | Heute früh nich Termin in Wahlkreis, Plakate a... | 60.0 | 450 | 82 | 0 | 13 | carolin_bachmann_mdb | ... | carolinbachmannmdb | MS4wLjABAAAAkFIhz-gwfBz-PvcyDf6xSziSIwYcvsxGFE... | https://www.tiktok.com/@MS4wLjABAAAAkFIhz-gwfB... | Heimat | Alles brennt | Johannes Oerding | 1738061893 | None | 1 | 1 |
| 17000 | 7464857918484106518 | https://www.tiktok.com/@carolin_bachmann_mdb/v... | Wie kann man so ein Plakat zerstören?!?! Es is... | Wie kann man so ein Plakat zerstören?!?! Es is... | 9.0 | 2470 | 81 | 1 | 38 | carolin_bachmann_mdb | ... | carolinbachmannmdb | MS4wLjABAAAAkFIhz-gwfBz-PvcyDf6xSziSIwYcvsxGFE... | https://www.tiktok.com/@MS4wLjABAAAAkFIhz-gwfB... | The Olsen Gang (Theme) | Olsenbanden ENG | Bent Fabricius-Bjerre | 1738047689 | None | 1 | 1 |
| 17001 | 7464586894207094038 | https://www.tiktok.com/@christinabaumafd/video... | 8.0 | 33 | 4 | 0 | 0 | christinabaumafd | ... | ChristinaBaumAfD | MS4wLjABAAAA5idJQbBKax9jis75GXN2tLRsh6Wxq-UKth... | https://www.tiktok.com/@MS4wLjABAAAA5idJQbBKax... | Sound of flying airplane (airliner) 2 | None | song sound sun | 1737984578 | None | 0 | 0 |
17002 rows × 21 columns